lexer grammar AnnotationLanguageLexer;

WS	:	[\t\r\n ]+ -> skip
	;

OPEN:	'{' -> pushMode(INSIDE)
	;

START
	:	'<'
	;

END	:	'>'
	;

ANNO:	'|'
	;

Text:	~[{|<>]+
	;


//-----INSIDE-----
mode INSIDE;

CLOSE
	:	'}' -> popMode
	;

ONTOLOGYMARK
	:	'@'
	;

PROPERTYMARK
	:	'#'
	;

IDENTIFIERMARK
	:	'$'
	;

TARGETSOPEN
	:	'['
	;

TARGETSCLOSE
	:	']'
	;

TARGETSSPLIT
	:	';'
	;
	
DOT	:	'.'
	;

Characters
	:	Legel_Character+
	;

fragment Chinese_Character
	:	[\u4E00-\u9FFF]
	;

fragment Digit
	:	[0-9]
	;

fragment ELLIPSIS
	: '...'
	;

fragment Legel_Character
	:	Chinese_Character
	|	Digit
	|	[a-zA-Z]
	|	'_'
	|	'、'
	|	','
	|	'，'
	|	ELLIPSIS
	;